====================================================================================================
====================================================================================================
====================================================================================================
====================================================================================================
====================================================================================================
====================================================================================================
===========================================----:::::::---===========================================
======================================--..                 .:--=====================================
===================================-:.                         .-===================================
=================================:.                              .:-================================
===============================-.                                   :-==============================
==============================.                                      .-=============================
=============================.                                        .-============================
============================:                 ..........               .============================
==========================+-             ..:::-:::-:::-:::..            .===========================
===========================.        ..:--=+*****++++++***++=-:..         :==========================
=========================+-       :-+**#######%%%##%%#########*+-.        =+========================
==============++++++++++++:     .=**#########%%%%%%%%%%#########*+-       -+++======================
===========+++++++++++++++:    .+**#########%%%%%%%%%%%%#########**=.     -+++++++==================
=======+++++++++++++++++++.   .=**##########%%%%%%%%%%%%#########***=.    =+++++++++++++============
==++++++++++++++++++++++++.  .-**###########%%%%%%%%%%%%#########****-.   =++++++++++++++++++=======
=+++++++++++++++++++++++++: .:=**#########%%%%%%%%%%%%%%%########****+:  .+++++++++++++++++++++++===
++++++++++++++++++++++++++- .-+***##*+++**###%%%%%%%%%###**++==+*****+-. :++++++++++++++++++++++++++
++++++++++++++++++++++++++- .=****+=------=+*#########**+=====--=+****=: -++++++++++++++++++++++++++
+++++++++++++++++++++++++++..+***+--=+++**++++*#######+=++***+++==+***=.:+++++++++++++++++++++++++++
+++++++++++++++++++++++++++=.:+**=+*********#*=+####*=+****++****+=**=:.=+++++++++++++++++++++++++++
+++++++++++++++++++++++++=+=:==+*+**+--=.:.=+**-+###-+*++::.==-=+*+++==:==-+++++++++++++++++++++++++
++++++++++++++++++++++++*++--++**=#*****+++***#-+###-+***+++**++**++*+=:-=++++++++++++++++++++++++++
+++++++++++++++++++++++++**==+**#=*#########%%*-*###+-############=**+=-+**+++++++++++++++++++++++++
+++++++++++++++++++++++++**==+**##=*#%%%%%%%%#=*####*=+##%#######++**+=-+**+++++++++++++++++++++++++
++++++++++++++++++++++++++*==+**###++**###**++**####**++**###**++*#**+=-++++++++++++++++++++++++++++
++++++++++++++++++++++++++++=+**##############**####**########*####**+==++++++++++++++++++++++++++++
++++++++++++++++++++++++++++==+**####%%%%%##*#####%##***###%%%%####**+==++++++++++++++++++++++++++++
++++++++++++++++++++++++++++==+**###########*##*####*##*###########**=-=++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++==+**##########*++=+++==++*##########**+==+++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++=+***###############################**+=++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++***#####***############*****######**==++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++**#####**+++++++**+++++++**#####**+=+++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++*++**#######*=-+*****#**+==*#######**++*++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++*+**++**########*++****+++++########**++*+++++++++++++++++++++++++++++++
+++++++++++++++++****************+=+*########*******++**#######*++=**+++++++++++++++++++++++++++++++
+++++++++++++++*******************+=+**########******#########*+==***+++++++++++++++++++++++++++++++
++++++++++++***********************==++*####################**+=-+********++++++++++++++++++++++++++
+++++++++++************************+===++*######%%%%%######*+=---+***********+++++++++++++++++++++++
+++++++++**************************+======+*#############*+=---=-+**************++++++++++++++++++++
+++++++****************************=++++=====++****#***+=--======+*****************+*+++++++++++++++
+++++****************************+==+*++++===-----------====++++=+*********************+++++++++++++
++++*************************++++==++****++++++=========++++++++=--==+******************++++++++++++
+++************************+:.:=++++********++++++++++++++*****+==--:.-******************+++++++++++
++***********************+=. =********####*********************++==+++:.=+*****************+++++++++
+********************+=:.    .+*##***########******************++++**=.   .-=+*************+++++++++
****************+=-:.          .=*###########################****++-:         .:-=+*********++++++++
***********+=-:.                  :-+**######################*+=:.                 .:=++*****+++++++
******+=-:.                           ..:-==++********++==-:..                         .:-=++***++++
**+-:.                                                                                      .:=++**+
-.                                                                                              .-=+

                                             
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    